import java.util.ArrayList;
/**
 * clase que contiene los metodos de busqueda, insercion y modificacion de datos
 * @author Francisco
 *
 */
public class Metodo {
	public static int codigoEmpleado = 0;

	/**
	 * metodo para insertar un nuevo empleado en una lista
	 * 
	 * @param nomb
	 *            nombre del empleado nuevo
	 * @param apell
	 *            apellido del empleado nuevo
	 * @param salario
	 *            salario del empleado nuevo
	 * @param lista
	 *            lista en la cual ingresaremos el empleado
	 */
	public void insertarEmpleado(String nomb, String apell, double salario,
			ArrayList lista) {
		Empleado aux = new Empleado();
		aux.setApellido(apell);
		aux.setSalario(salario);
		aux.setNombre(nomb);
		String auxiliar = "" + this.codigoEmpleado;
		aux.setId(auxiliar);
		if (!comprobarEmpleado(nomb, apell, lista)) {
			this.codigoEmpleado++;
			lista.add(aux);
			System.out.println("Empleado Agregado \n" + aux.toString());
		}
	}

	/**
	 * metodo para buscar un empleado en un arrayList
	 * 
	 * @param lista
	 *            lista donde buscaremos
	 * @param id
	 *            id de empleado
	 * @return devuelve el empleado encontrado si lo encuentra , devuelve null
	 *         en el caso de no encontrarlo
	 */
	public Empleado buscarEmpleado(ArrayList lista, String id) {
		for (int i = 0; i < lista.size(); i++) {
			Empleado auxiliar = (Empleado) lista.get(i);
			if (auxiliar.getId().equalsIgnoreCase(id))
				return auxiliar;
		}
		return null;
	}

	/**
	 * metodo para comprobar si un empleado existe
	 * 
	 * @param nombr
	 *            nombre de empleado
	 * @param apellid
	 *            apellido de el empleado
	 * @param lista
	 *            lista con los empleados ingresados
	 * @return devuelve verdadero si el empleado ya existe en la lista y falso
	 *         en el caso contrario
	 */
	public boolean comprobarEmpleado(String nombr, String apellid,
			ArrayList lista) {
		for (int i = 0; i < lista.size(); i++) {
			Empleado aux = (Empleado) lista.get(i);
			if (aux.getApellido().equalsIgnoreCase(apellid)
					&& aux.getNombre().equalsIgnoreCase(nombr)) {
				return true;
			}
		}
		return false;
	}

	/**
	 * metodo para incrementar sueldo de un empleado, muestra por pantalla el
	 * salario actual el incrementoi y el salario final
	 * 
	 * @param id
	 *            id de empleado a modificar
	 * @param incremento
	 *            incremento a realizar en el salario
	 * @param lista
	 *            lista de empleados
	 */
	public void incrementarSueldo(String id, double incremento, ArrayList lista) {

		for (int i = 0; i < lista.size(); i++) {
			Empleado aux = (Empleado) lista.get(i);
			if (aux.getId().equalsIgnoreCase(id)) {
				System.out.println("Empleado A Actualizar: " + aux.getNombre()
						+ " " + aux.getApellido());
				System.out.println("Salario actual: " + aux.getSalario()
						+ "\nAumento: " + incremento + "\n Salario final: "
						+ (aux.getSalario() + incremento));
				aux.setSalario((aux.getSalario() + incremento));
			}
		}

	}
}
